package func;

import java.util.ArrayList;

public class BasicIntegerFuncs implements FunctionGroup<Integer> {
	public String description() {
		return "basicinteger";
	}
	public ArrayList<Function<Integer>> createFunctionGroup() {
		ArrayList<Function<Integer>> f = new ArrayList<Function<Integer>>();
		
		f.add(
			new Function<Integer>() {
				public Integer applyFunction(Integer[] param) {
					return param[0] + param[1];
				}
				public String description() {
					return "i_add";
				}
				public int paramCount() {
					return 2;
				}			
		});
		
		f.add(
				new Function<Integer>() {
					public Integer applyFunction(Integer[] param) {
						return param[0] - param[1];
					}
					public String description() {
						return "i_sub";
					}
					public int paramCount() {
						return 2;
					}			
			});
		/**
		f.add(
				new Function<Integer>() {
					public Integer applyFunction(Integer[] param) {
						return param[0] / param[1];
					}
					public String description() {
						return "i_div";
					}
					public int paramCount() {
						return 2;
					}			
			});
		*/
		f.add(
				new Function<Integer>() {
					public Integer applyFunction(Integer[] param) {
						return param[0] * param[1];
					}
					public String description() {
						return "i_mul";
					}
					public int paramCount() {
						return 2;
					}			
			});
		
		return f;
	}
}
